package link.wangkui.lamda;

/**
 * 在jdk1.8之前，因为接口里只能做方法定义不能有方法的实现，
 * 因此我们通常会在抽象类里面实现默认的方法｛一般这个默认的方法是抽象后公用的方法，
 * 不需要每一个继承者都去实现，只需调用即可｝。就像下面这样；
 */
public abstract class AFormula {
    abstract double calculate(int a);
    /**
     *     平方
     */
    double sqrt(int a) {
        return Math.sqrt(a);
    }
    public static void main( String[] args )
    {
        AFormula aFormula = new AFormula() {
            @Override
            double calculate(int a) {
                return a * a;
            }
        };
        //求平方：4
        System.out.println(aFormula.calculate(2));
        //求开方：1.4142135623730951
        System.out.println(aFormula.sqrt(2));
    }

}
